HAL RAMCFG typical use cases for migration

This section provides information about the HAL RAMCFG Typical use cases for migration.

HAL RAMCFG SRAM ECC monitoring without interruption

Sequence diagram

HAL1 Sequence Diagrams

HAL2 Sequence Diagrams

@startuml
participant "User Application" as part1
participant "RAMCFG Driver" as part3

== Prerequisite: Initialization and configuration ==

group Process
part1->part3 : HAL_RAMCFG_StartECC()
part3 --> part1 : HAL_OK
|||
part1->part3 : HAL_RAMCFG_IsECCSingleErrorDetected() \n HAL_RAMCFG_IsECCDoubleErrorDetected() \n HAL_RAMCFG_GetSingleErrorAddress() \n HAL_RAMCFG_GetDoubleErrorAddress()
part3 --> part1 : HAL_OK
|||
part1->part3 : HAL_RAMCFG_StopECC()
part3 --> part1 : HAL_OK
end
@enduml

@startuml
participant "User Application" as part1
participant "RAMCFG Driver" as part3

== Prerequisite: Initialization and configuration ==

group Process
part1->part3 : HAL_RAMCFG_ECC_Enable()
part3 --> part1 : HAL_OK
part1->part3 : HAL_RAMCFG_ECC_GetInfo()
note right : The Get fail info function in HAL2 \n returns the type of failure and the address \n of the last fail RAM word detected.
|||
part3 --> part1 : HAL_OK
part1->part3 : HAL_RAMCFG_ECC_Disable()
part3 --> part1 : HAL_OK
end
@enduml


HAL RAMCFG SRAM ECC monitoring with interruption

Sequence diagram

@startuml
participant "User Application" as part1
participant "RAMCFG Driver" as part3
participant "NVIC" as part5
participant "HW" as part6

== Prerequisite: Initialization and configuration ==

group Process
part1->part3 : HAL_RAMCFG_StartECC()
part3 --> part1 : HAL_OK
part1->part3 : HAL_RAMCFG_EnableNotification()
part3 --> part1
part6 --> part5 : interrupt
part5 --> part3 : HAL_RAMCFG_IRQHandler
part3 --> part1 : User callback
|||
part1->part3 : HAL_RAMCFG_IsECCSingleErrorDetected() \n HAL_RAMCFG_IsECCDoubleErrorDetected() \n HAL_RAMCFG_GetSingleErrorAddress() \n HAL_RAMCFG_GetDoubleErrorAddress()
part3 --> part1 : HAL_OK
|||
part1->part3 : HAL_RAMCFG_DisableNotification()
part3 --> part1
|||
part1->part3 : HAL_RAMCFG_StopECC()
part3 --> part1 : HAL_OK
end
@enduml